#define CALL(FUN, ...) FUN(__VA_ARGS__)

int one(int a) {
    if (a != 1)
        return 1;

    return 0;
}

int two(int a, int b) {
    if (a != 1)
        return 1;
    if (b != 2)
        return 1;

    return 0;
}

int three(int a, int b, int c) {
    if (a != 1)
        return 1;
    if (b != 2)
        return 1;
    if (c != 3)
        return 1;

    return 0;
}

int main() {
    if (CALL(one, 1))
        return 2;
    if (CALL(two, 1, 2))
        return 3;
    if (CALL(three, 1, 2, 3))
        return 4;

    return 0;
}
